package com.smart.reader.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

@ApiModel("班级信息视图对象")
@Getter
@Setter
public class ClassInfoVo {
    @ApiModelProperty(value = "班级ID", example = "1")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    
    @ApiModelProperty(value = "班级号", example = "CS2023-01", required = true)
    private String classNo;

    @ApiModelProperty(value = "班主任ID", example = "123")
    private String teacherId;

    @ApiModelProperty(value = "班主任姓名", example = "李老师")
    private String teacherFullName;
    
    @ApiModelProperty(value = "所属专业", example = "1")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long mayjorId;
    
    @ApiModelProperty(value = "所属专业名称", example = "计算机科学与技术")
    private String mayjorName;
    
    @ApiModelProperty(value = "所属学院", example = "1")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long collegeId;
    
    @ApiModelProperty(value = "所属学院名称", example = "信息学院")
    private String collegeName;
    
    @ApiModelProperty(value = "入学年份", example = "2023")
    private String enrollmentYear;

    @ApiModelProperty(value = "创建时间", example = "2023-07-15 10:30:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "更新时间", example = "2023-07-15 10:30:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    
    @ApiModelProperty(value = "备注", example = "重点班级")
    private String remark;
    
    @ApiModelProperty(value = "描述", example = "计算机科学与技术专业重点班级")
    private String description;
    
    @ApiModelProperty(value = "学生数量", example = "45")
    private Integer studentCount;


}
